home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / BOCOLE.PAK / MAKEFILE < prev    next >
Text File  |  1997-05-06  |  16KB  |  583 lines

  1. #-----------------------------------------------------------------------------
  2. # ObjectComponents
  3. # Copyright (c) Borland International 1991, 1996. All Rights Reserved
  4. #
  5. #  $Revision:   2.30  $
  6. #
  7. # MAKEFILE for BOCOLE Helper DLL
  8. #
  9. # Defines:
  10. #   MODEL=<l|f>       one of: large, flat
  11. #   WIN32             enables win32 DLL [flat]
  12. #   WIN16             enables win16 DLL [large]
  13. #   MT               links to the multithreaded version of the RTL
  14. #   VCL             builds BOCOLE using the VCL-compatible RTL (cp32mt)
  15. #                      (implies -DMT; requires WIN32)
  16. #   DEBUG             enables debug info for TDW & TD32
  17. #   BOCONAME=Xxx      lib & DLL name base, Defaults to BOCOLE or BOCOF
  18. #   BOCORES=Xxxx      name of .RES file [defaults to BOCONAME.res]
  19. #   CODEGUARD         builds with CodeGuard:  1=basic data, 2=full checking
  20. #   RTLDLL            builds BOCOLE DLL which uses DLL version of RTL
  21. #   ALIGN=<1|2|4|8>   specifies the alignment
  22. #   ILINK          uses ILINK32 instead of TLINK32 to link
  23. #
  24. # Define these for alternate OCF build directories:
  25. #   BOCOLESRCDIR    defaults to: $(OCFSRCDIR)\bocole
  26. #   BOCOLEINCDIR    defaults to: $(OCFSRCDIR)\bocole
  27. #   BOCOLELIBDIR    defaults to: $(OCFSRCDIR)\bocole
  28. #   BOCOLEBINDIR    defaults to: $(OCFSRCDIR)\bocole\bin
  29. #-----------------------------------------------------------------------------
  30.  
  31. .autodepend
  32. .cacheautodepend
  33. .swap
  34.  
  35.  
  36. #-----------------------------------------------------------------------------
  37. # Fill in defaults
  38. #-----------------------------------------------------------------------------
  39. !if !$d(WIN16) && !$d(WIN32)
  40.   WIN32 = 1
  41. !endif
  42.  
  43. DLL = 1
  44.  
  45. #
  46. # For multithreaded target, set the value of MT
  47. #
  48. !if $(MODEL) == t || $d(MT) || $d(VCL)
  49.   MT = mt       # model t implies MT. Use MT as 'mt' to build library names
  50. !endif
  51.  
  52. !if $d(MT) || $(VCL)
  53.  MODEL = t
  54. !endif
  55.  
  56. #
  57. # Check for incompatible choices and warn user
  58. #
  59. !if $d(VCL)
  60. ! if !$d(WIN32) || $(MODEL) != t
  61. !   error VCL-compatible library must be multithreaded 32-bit
  62. ! endif
  63. !endif
  64.  
  65. !if $d(ILINK) && $d(WIN16)
  66. ! error Cannot build 16-bit targets with ILINK.
  67. !endif
  68.  
  69.  
  70. #--------------------------------------------------------------------
  71. # Dir & name components
  72. #--------------------------------------------------------------------
  73. !if !$d(BOCONAME)
  74. ! if $d(WIN16)
  75.     BOCONAME = BOCOLE
  76. ! else
  77.     BOCONAME = BOCOF
  78. ! endif
  79. !endif
  80. !if !$d(BOCORES)
  81.   BOCORES = $(BOCONAME).res
  82. !endif
  83.  
  84.  
  85. #--------------------------------------------------------------------
  86. # Debug & diagnostic flags
  87. #--------------------------------------------------------------------
  88. !if $d(DEBUG)
  89.   CDBG = -v -vi -D_DEBUG
  90.   LDBG = /v
  91. !endif
  92. !if $d(DIAGS)         # default diags use precondition, check, trace & warn
  93.   __DEBUG=2
  94.   __TRACE=1
  95.   __WARN=1
  96. !endif
  97.  
  98.  
  99. #--------------------------------------------------------------------
  100. # Dir & search paths, & precompiled headers
  101. #--------------------------------------------------------------------
  102.  
  103. #
  104. # BC tools BCBINDIR can be based on MAKEDIR if no BCROOT is defined
  105. #
  106. !if $d(BCROOT)
  107.   BCBINDIR = $(BCROOT)\bin
  108. !else
  109.   BCBINDIR = $(MAKEDIR)
  110. !endif
  111.  
  112. #
  113. # Where to find BC tools, libraries and include files
  114. #
  115. BCSRCDIR = $(BCROOT)\source
  116. BCINCDIR = $(BCROOT)\include
  117. BCLIBDIR = $(BCROOT)\lib
  118. BCBINDIR = $(BCROOT)\bin
  119.  
  120. #
  121. # Default bcroot to whatever is in bcroot.inc
  122. #
  123. !if !$d(BCROOT)
  124. !  include $(MAKEDIR)\bcroot.inc
  125. !endif
  126.  
  127. #
  128. # Where to find OCF dirs-- can set these for special layouts
  129. # Build search paths differently if OCF include dir is not below BC's
  130. #
  131. !if !$d(OCFSRCDIR)
  132.   OCFSRCDIR = $(BCSRCDIR)\ocf
  133. !endif
  134.  
  135. !if !$d(BOCOLESRCDIR)
  136.   BOCOLESRCDIR = $(OCFSRCDIR)\bocole
  137. !endif
  138. !if !$d(BOCOLEINCDIR)
  139.   BOCOLEINCDIR = $(BOCOLESRCDIR)
  140. !endif
  141. !if !$d(BOCOLELIBDIR)
  142.   BOCOLELIBDIR = $(BOCOLESRCDIR)
  143. !endif
  144. !if !$d(BOCOLEBINDIR)
  145.   BOCOLEBINDIR = $(BOCOLESRCDIR)\bin
  146. !endif
  147.  
  148. !if $d(WIN16)
  149.   BOCOLEOBJDIR = $(BOCOLESRCDIR)\o\wi
  150. !else
  151.   BOCOLEOBJDIR = $(BOCOLESRCDIR)\o\wfi
  152. !endif
  153.  
  154. INCLUDE = $(BOCOLEINCDIR);$(BCINCDIR)
  155. !if $d(WIN16)
  156.   INCLUDE = $(INCLUDE);$(BOCOLEINCDIR)\BOLEUI
  157. !else
  158.   INCLUDE = $(INCLUDE);$(BOCOLEINCDIR)\BOLEUI32
  159. !endif
  160.  
  161. !if $d(WIN16)
  162.   RCINCLUDEPATH = -i$(BCINCDIR)\WIN16 -i$(BCINCDIR)
  163. !else
  164.   RCINCLUDEPATH = -i$(BCINCDIR)\WIN32 -i$(BCINCDIR)
  165. !endif
  166.  
  167. !if $d(VCL) && !$d(VCLOBJDIR)
  168.   VCLOBJDIR = $(BCLIBDIR)\obj
  169. !endif
  170.  
  171. .PATH.obj = $(BOCOLEOBJDIR)
  172. .PATH.res = $(BOCOLEOBJDIR)
  173. .PATH.def = $(BOCOLEOBJDIR)
  174. .PATH.lib = $(BOCOLELIBDIR)
  175. .PATH.cpp = $(BOCOLESRCDIR)
  176.  
  177.  
  178. #--------------------------------------------------------------------
  179. # Library names
  180. #--------------------------------------------------------------------
  181.  
  182. #
  183. # If building for VCL, use an RTL that begins "cp" instead of "cw"
  184. #
  185. !if $d(VCL)
  186.   RTLPFX=cp
  187. !else
  188.   RTLPFX=cw
  189. !endif
  190.  
  191. !if $d(DEBUG)
  192.   VCLLIB = vcld
  193. !else
  194.   VCLLIB = vcl
  195. !endif
  196.  
  197. #--------------------------------------------------------------------
  198. # Generic BOCOLE Options
  199. #--------------------------------------------------------------------
  200. CFLAGS = -DINC_OLE2 -DMS_OLEUI_DEF -c
  201. !if !$d(DIAGS)
  202.   CFLAGS = $(CFLAGS) -DNDEBUG
  203. !endif
  204. LFLAGS = -c -s
  205.  
  206.  
  207. #--------------------------------------------------------------------
  208. # Tools and options for Win32
  209. #--------------------------------------------------------------------
  210. !if $d(WIN32)
  211.   CC       = $(BCBINDIR)\bcc32       # Compiler
  212.   RCC      = $(BCBINDIR)\brcc32 -w32 # Resource compiler
  213.   CCASM    = $(BCBINDIR)\tasm32      # Assembler
  214.  
  215. ! if $d(ILINK)
  216.   LINK     = $(BCBINDIR)\ilink32     # Linker
  217. ! else
  218.   LINK     = $(BCBINDIR)\tlink32     # Linker
  219. ! endif
  220.  
  221.   LIB      = $(BCBINDIR)\tlib        # Librarian
  222.   IMPLIB   = $(BCBINDIR)\implib      # Import library generator
  223.   TDSTRIP  = $(BCBINDIR)\tdstrp32    # Debug info extractor
  224.  
  225.   CFLAGS   = $(CFLAGS) -DWIN32 -i60 -d -O -Obels -Z -RT- -x-
  226.   STDLIBS  = ole2w32 import32 
  227.  
  228. ! if $d(RTLDLL)  
  229.     STDLIBS = $(STDLIBS) $(RTLPFX)32$(MT)i
  230. ! else
  231.     STDLIBS = $(STDLIBS) $(RTLPFX)32$(MT)
  232. ! endif
  233.  
  234.   BOLEUILIB = $(BOCOLESRCDIR)\boleui32\boleui32.lib
  235.   BOLEUIRES = $(BOCOLESRCDIR)\boleui32\boleui32.res
  236.  
  237. !  if $d(UNICODE)
  238.     CFLAGS = $(CFLAGS) -DUNICODE
  239. !  else
  240.     CFLAGS = $(CFLAGS) -DANSI
  241. !  endif
  242.  
  243. !  if $d(CODEGUARD)                  # d=add data, t=check this
  244.     CFLAGS = $(CFLAGS) -vGd -vGt
  245. !  endif
  246. !  if $(CODEGUARD) == 2              # c=add calls,  
  247.     CFLAGS= $(CFLAGS) -vGc
  248. !  endif
  249.  
  250.   CFGFILE  = bcc32.cfg               # Name of compiler's config file
  251.  
  252. !  if $d(DEBUG)
  253.     TLIBOPTS = /P512 /C
  254. !  else
  255.     TLIBOPTS = /P32 /0 /C
  256. !  endif
  257.  
  258. !  if $d(DLL)
  259.     CFLAGS = $(CFLAGS) -WDE 
  260.     LFLAGS = $(LFLAGS) $(LDBG) -Tpd -aa -s -c
  261.     STARTUP= c0d32.obj
  262. !  else
  263.     CFLAGS = $(CFLAGS) -WS
  264.     STARTUP= c0w32.obj
  265. !  endif
  266.  
  267. !  if $d(CODEGUARD)
  268.     STDLIBS  = cg32 $(STDLIBS)
  269. !  endif
  270.  
  271. ! if $d(VCL)
  272.     CFLAGS  = $(CFLAGS) -b- -Vx -Ve
  273.     LFLAGS  = $(LFLAGS) -j$(VCLOBJDIR)
  274.     STDLIBS = $(STDLIBS) $(VCLLIB)
  275. ! endif 
  276.  
  277. !  if !$d(MT)
  278.     CFLAGS = $(CFLAGS) -WM-
  279. !  endif
  280.  
  281. !  if $d(VCL)
  282.     CFLAGS = $(CFLAGS) -a4
  283. !  elif $d(ALIGN)
  284.     CFLAGS = $(CFLAGS) -a$(ALIGN)
  285. !  else
  286.     CFLAGS = $(CFLAGS) -a4
  287. !  endif
  288.  
  289. #--------------------------------------------------------------------
  290. # Tools and options for Win16
  291. #--------------------------------------------------------------------
  292. !else
  293.   CC       = $(BCBINDIR)\bcc         # Compiler
  294.   RCC      = $(BCBINCIR)\brcc32 -31  # Resource compiler
  295.   CCASM    = $(BCBINDIR)\tasm        # Assembler
  296.   LINK     = $(BCBINDIR)\tlink       # Linker
  297.   RLINK    = $(BCBINDIR)\rlink       # Resource Linker
  298.   LIB      = $(BCBINDIR)\tlib        # Librarian
  299.   TDSTRIP  = $(BCBINDIR)\tdstrip     # Debug info extractor
  300.  
  301.   # implib needs -o switch in 16 bit for compatibility
  302.   IMPLIB   = $(BCBINDIR)\implib -o   # Import library generator
  303.   TDSTRIP  = $(BCBINDIR)\tdstrip     # Debug info extractor
  304.  
  305.   CFLAGS   = $(CFLAGS) -OW -k -2 -ml -i42 -O -Obels -Z -RT- -x-
  306. ! if $d(CODEGUARD)                   # d=add data, c=add calls, t=check this
  307.     CFLAGS = $(CFLAGS) -vGd -vGt     # vGc: Only 32-bit currently 
  308. ! endif
  309.  
  310.   CFGFILE= turboc.cfg
  311.   STDLIBS= ole2w16 import mathwl 
  312.  
  313. ! if $d(RTLDLL)  
  314.     STDLIBS = $(STDLIBS) crtldll
  315. ! else
  316.     STDLIBS = $(STDLIBS) cwl
  317. ! endif
  318.  
  319.   BOLEUILIB = $(BOCOLESRCDIR)\boleui\boleui.lib
  320.   BOLEUIRES = $(BOCOLESRCDIR)\boleui\boleui.res
  321.  
  322. !  if $d(DEBUG)
  323.     TLIBOPTS = /P512 /C
  324. !  else
  325.     TLIBOPTS = /P32 /0 /C
  326. !  endif
  327.  
  328. !  if $d(DLL)                        # Build the 16bit OCF for use with RTL/BIDS DLL
  329.     CFLAGS = $(CFLAGS) -WD #!DR -WDE 
  330.     LFLAGS = $(LFLAGS) $(LDBG) -C -Twd -A=16
  331.     STARTUP= c0dl.obj
  332. !  else
  333.     CFLAGS = $(CFLAGS) -WSE          # Build static OCF lib for use in EXEs
  334.     STARTUP= c0wl.obj
  335. !  endif
  336.  
  337. !  if $d(CODEGUARD)
  338.     STDLIBS  = cg16 $(STDLIBS)
  339. !  endif
  340.  
  341. !  if $d(ALIGN)
  342.     CFLAGS = $(CFLAGS) -a$(ALIGN)
  343. !  endif
  344. !endif
  345.  
  346. #--------------------------------------------------------------------
  347. # Rules
  348. #--------------------------------------------------------------------
  349. .rc.res:
  350.   $(RCC) $(RCINCLUDEPATH) -fo$@ $.
  351.  
  352. .cpp.obj:
  353.   $(CC) {$& }
  354.  
  355. #--------------------------------------------------------------------
  356. # Various file lists needed for dependency checking and LIBing.
  357. #
  358. #   OBJS_CMN are the objs common to static libs and the dll
  359. #   OBJS_LIB are the objs that go into libs and implibs only, not the dlls
  360. #   OBJS_DLL are the objs that go into the dll only
  361. #   LIBDEPOBJS is the list of object files for lib/implib dependency checking
  362. #   LIBOBJS is the list of object files for building/addingto the libraries
  363. #   LINKOBJS is the list of object files for building the DLL
  364. #--------------------------------------------------------------------
  365.  
  366. # Common, unsectioned objs go into static libs and DLLs
  367. #
  368. OBJS_CMN = \
  369.  PFXbolecomp.obj \
  370.  PFXbolesvc.obj  \
  371.  PFXbolecman.obj \
  372.  PFXbolecont.obj \
  373.  PFXbolesite.obj \
  374.  PFXbolectrl.obj \
  375.  PFXbolefont.obj \
  376.  PFXboleips.obj  \
  377.  PFXbolefact.obj \
  378.  PFXboledoc.obj  \
  379.  PFXbolepart.obj \
  380.  PFXbolepict.obj \
  381.  PFXboleclip.obj \
  382.  PFXbhatch.obj   \
  383.  PFXolenew.obj   \
  384.  PFXboledata.obj \
  385.  PFXbolehelp.obj \
  386.  PFXboleguid.obj \
  387.  PFXbolever.obj  \
  388.  PFXbconnpnt.obj \
  389.  PFXbocxctrl.obj \
  390.  PFXmovewin.obj
  391.  
  392. !if $d(WIN32)
  393.   OBJS_CMN = $(OBJS_CMN) \
  394.     PFXutils.obj
  395. !endif
  396.  
  397. OBJS_DLL =  \
  398.  PFXoledll.obj 
  399.  
  400. # Put together obj groups into lists for different targets
  401. #
  402. _OBJDIR_ = $(BOCOLEOBJDIR)\\
  403. !if $d(DLL)
  404.  LIBDEPOBJS= $(OBJS_CMN:PFX=) $(OBJS_DLL:PFX=)
  405.  LIBOBJS   = $(OBJS_CMN:PFX=+) 
  406.  LINKOBJS  = $(OBJS_CMN:PFX=$(_OBJDIR_)) $(OBJS_DLL:PFX=$(_OBJDIR_))
  407. !endif
  408.  
  409.  
  410. #--------------------------------------------------------------------
  411. # targets
  412. #--------------------------------------------------------------------
  413. all: cfgfile $(BOCOLEBINDIR)\$(BOCONAME).DLL
  414.  
  415. cfgfile:
  416.   @-if not exist $(.PATH.obj)\..\NUL md $(.PATH.obj)\..
  417.   @-if not exist $(.PATH.obj)\NUL md $(.PATH.obj)
  418.   @copy &&|
  419. -I$(INCLUDE)
  420. -c -w $(CFLAGS) $(CDBG) $(CDIAG)
  421. -n$(.PATH.obj) 
  422. | $(CFGFILE) > NUL
  423.  
  424. $(BOCOLEBINDIR)\$(BOCONAME).DLL : $(LIBDEPOBJS) \
  425.                                   $(.PATH.obj)\$(BOCONAME).DEF \
  426.                                   $(.PATH.obj)\$(BOCORES) \
  427.                                   $(BOLEUILIB) $(BOLEUIRES)
  428.   $(LINK) @&&|
  429. $(LFLAGS) -L$(BCLIBDIR) $(STARTUP) +
  430. $(LINKOBJS)
  431. $(BOCOLEBINDIR)\$(BOCONAME).DLL
  432. $(.PATH.obj)\$(BOCONAME).map
  433. $(BOLEUILIB) $(STDLIBS)
  434. $(.PATH.obj)\$(BOCONAME).def
  435. !if $d(WIN32)
  436. $(.PATH.obj)\$(BOCORES) $(BOLEUIRES) 
  437. !endif
  438. |
  439. !if $d(WIN16)
  440.   $(RLINK) @&&|
  441. -v -31 -k -fi $(.PATH.obj)\$(BOCORES) $(BOLEUIRES) $(BOCOLEBINDIR)\$(BOCONAME).DLL 
  442. !endif
  443.   $(TDSTRIP) -s $(BOCOLEBINDIR)\$(BOCONAME).DLL
  444.   $(IMPLIB) $(BOCOLEBINDIR)\$(BOCONAME).LIB $(BOCOLEBINDIR)\$(BOCONAME).DLL
  445.  
  446. !if $d(WIN16)
  447. #--------------------------------------------------------------------
  448. # DEF file [16-bit]
  449. #--------------------------------------------------------------------
  450. $(.PATH.obj)\$(BOCONAME).DEF:
  451.   @copy &&|
  452. LIBRARY      $(BOCONAME)
  453. DESCRIPTION  'Aggregable Generic OLE2 Container and Object Implementation'
  454. EXETYPE      WINDOWS
  455.  
  456. CODE         LOADONCALL MOVEABLE DISCARDABLE
  457. DATA         PRELOAD MOVEABLE SINGLE
  458.  
  459. SEGMENTS
  460.   _TEXT      PRELOAD MOVEABLE DISCARDABLE
  461.   WEP_TEXT   PRELOAD MOVEABLE DISCARDABLE
  462.  
  463. HEAPSIZE     1024
  464.  
  465. EXPORTS
  466.  
  467.     ; Explicitly exported initialization routine
  468.     ;
  469.     DLLGETCLASSOBJECT             @2
  470.     CREATECLASSMGR                @3
  471.     DLLCANUNLOADNOW               @4
  472. ;   DLLENTRYPOINT                 @5
  473.  
  474.    _IID_IBPart                    @260 
  475.    _IID_IBSite                    @261
  476.    _IID_IBContainer               @262 
  477.    _IID_IBDocument                @263 
  478.    _IID_IBService                 @264 
  479.    _IID_IBApplication             @265 
  480.    _IID_IBClassMgr                @266 
  481.    _IID_IBLinkInfo                @267 
  482.    _IID_IBLinkable                @268 
  483.    _IID_IBRootLinkable            @269 
  484.    _IID_IBContains                @270 
  485.    _IID_BOleDocument              @271 
  486.    _IID_BOlePart                  @272 
  487.    _IID_IBDataConsumer            @273 
  488.    _IID_IBDataProvider            @274 
  489.    _IID_IBWindow                  @275 
  490.    _IID_IBDataNegotiator          @276 
  491.    _IID_IBDropDest                @277 
  492.    _IID_BOleShadowData            @278 
  493.    _IID_IBClass                   @279 
  494.    _IID_IBOverrideBrowseLinks     @280
  495.    _IID_IBOverrideHelpButton      @281
  496.    _IID_IBSite2                   @282
  497.    _IID_BOleFont                  @283 
  498.    _IID_BOlePicture               @284 
  499.    _IID_IBPicture                 @285 
  500. | $(.PATH.obj)\$(BOCONAME).def  > NUL
  501.  
  502. #--------------------------------------------------------------------
  503. # DEF file [32-bit]
  504. #--------------------------------------------------------------------
  505. !else
  506.  
  507. $(.PATH.obj)\$(BOCONAME).DEF:
  508.   @copy &&|
  509. LIBRARY      $(BOCONAME)
  510. DESCRIPTION  'Aggregable Generic OLE2 Container and Object Implementation'
  511. EXETYPE      WINDOWS
  512.  
  513. ;CODE        LOADONCALL MOVEABLE DISCARDABLE
  514. DATA         MULTIPLE NONSHARED
  515.  
  516. SEGMENTS
  517.     _TEXT   PRELOAD MOVEABLE DISCARDABLE
  518.  
  519. HEAPSIZE     1024
  520.  
  521. EXPORTS
  522.     DllGetClassObject    @2
  523.     CreateClassMgr        @3
  524.     DllCanUnloadNow        @4
  525.     DllEntryPoint          @5
  526.  
  527.    _IID_IBPart                    @260 
  528.    _IID_IBSite                    @261
  529.    _IID_IBContainer               @262 
  530.    _IID_IBDocument                @263 
  531.    _IID_IBService                 @264 
  532.    _IID_IBApplication             @265 
  533.    _IID_IBClassMgr                @266 
  534.    _IID_IBLinkInfo                @267 
  535.    _IID_IBLinkable                @268 
  536.    _IID_IBRootLinkable            @269 
  537.    _IID_IBContains                @270 
  538.    _IID_BOleDocument              @271
  539.    _IID_BOlePart                  @272 
  540.    _IID_IBDataConsumer            @273 
  541.    _IID_IBDataProvider            @274 
  542.    _IID_IBWindow                  @275 
  543.    _IID_IBDataNegotiator          @276 
  544.    _IID_IBDropDest                @277 
  545.    _IID_BOleShadowData            @278 
  546.    _IID_IBClass                   @279 
  547.    _IID_IBOverrideBrowseLinks          @280
  548.    _IID_IBOverrideHelpButton      @281
  549.    _IID_IBSite2                   @282
  550.    _IID_BOleFont                  @283 
  551.    _IID_BOlePicture               @284 
  552.    _IID_IBPicture                 @285 
  553.  
  554. | $(.PATH.obj)\$(BOCONAME).def  > NUL
  555.  
  556. !endif
  557.  
  558. $(.PATH.obj)\$(BOCORES):
  559.   $(RCC) $&.rc @&&|
  560. $(RCINCLUDEPATH)
  561. | -fo$@
  562.  
  563. $(BOLEUILIB):
  564.  @if not exist $(BOLEUILIB) echo $(BOLEUILIB) must exist
  565.  
  566. $(BOLEUIRES):
  567.  @if not exist $(BOLEUIRES) echo $(BOLEUIRES) must exist
  568.  
  569. clean:
  570.   @echo Removing .OBJs from $(.PATH.obj)
  571.   @if exist $(.PATH.obj)\*.obj del $(.PATH.obj)\*.obj
  572.   @if exist $(.PATH.obj)\*.csm del $(.PATH.obj)\*.csm
  573.  
  574. !if !$d(WIN32)
  575.  
  576. # Put data into code segment for this module
  577. boleguid.obj : $(BOCOLESRCDIR)\boleguid.cpp
  578.   $(CC) -H- -zE_TEXT -zFCODE $(BOCOLESRCDIR)\boleguid.cpp
  579.  
  580. !endif
  581.